//
//  HSYBaseCollectionController.h
//  高仿暴走斗图
//
//  Created by huangsongyao on 16/3/4.
//  Copyright © 2016年 huangsongyao. All rights reserved.
//

#import "HSYBaseRefleshViewController.h"

@interface HSYBaseCollectionController : HSYBaseRefleshViewController<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>

@property (nonatomic, strong) UICollectionView *collectionView;
@property (nonatomic, copy) void(^selectIndexPathCell)(id collectionViewCell, NSIndexPath *indexPath);

/**
 *  添加默认的collectionView
 */
- (void)createCollection;

/**
 *  创建一个collectionView
 *
 *  @param parentView              collectionView的父视图
 *  @param rect                    collectionView的frame
 *  @param sectionInset            顶端低端左边右边四个方向偏移量，非矢量
 *  @param minimumLineSpacing      cell的左右间的距离
 *  @param minimumInteritemSpacing cell的上下间的距离
 *  @param itemSize                cell的size
 *  @param headerReferenceSize     headerView的size
 *  @param footerReferenceSize     footView的size
 */
- (void)createCollectionViewInParentView:(UIView *)parentView rect:(CGRect)rect sectionInset:(UIEdgeInsets)sectionInset minimumLineSpacing:(CGFloat)minimumLineSpacing minimumInteritemSpacing:(CGFloat)minimumInteritemSpacing itemSize:(CGSize)itemSize headerReferenceSize:(CGSize)headerReferenceSize footerReferenceSize:(CGSize)footerReferenceSize;

/**
 *  通过cell获取对应的indexPath
 *
 *  @param cell           cell对象
 *  @param collectionView UICollectionView对象
 *
 *  @return NSIndexPath对象
 */
- (NSIndexPath *)getCollectionViewIndexPathForCell:(UICollectionViewCell *)cell withCollectionView:(UICollectionView *)collectionView;

/**
 *  通过indexPath获取对应的cell
 *
 *  @param indexPath      indexPath对象
 *  @param collectionView UICollectionView对象
 *
 *  @return UICollectionViewCell对象
 */
- (UICollectionViewCell *)getCollectionViewCellForIndexPath:(NSIndexPath *)indexPath withCollectionView:(UICollectionView *)collectionView;

/**
 *  删除某个或者某几个Item
 *
 *  @param indexPaths     某个或者某几个的Item的集合
 *  @param collectionView UICollectionView对象
 */
- (void)deleteRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths withCollectionView:(UICollectionView *)collectionView;



/**
 *  添加下拉刷新
 */
- (void)addPullDown;

/**
 *  下拉刷新动作
 */
- (void)pullDown;

/**
 *  停止下拉动作
 */
- (void)stopPullDown;





/**
 *  添加上拉刷新
 */
- (void)addPullUp;

/**
 *  上拉刷新动作
 */
- (void)pullUp;

/**
 *  停止上拉动作
 */
- (void)stopPullUp;


@end
